<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of utilidades
 *
 * @author jose
 */
class Utilidades {

    protected $ci;

    function __construct() {
        $this->ci = & get_instance();
    }

    function listaMaterias($ide_pers) {
        $this->ci->load->model('docente_model');
        $lista = $this->ci->docente_model->cargarMaterias($ide_pers);

        $aux = array();
        foreach ($lista as $item) {
            $seccion = $this->secciones($item["seccion"]);
            $nombre = $this->numeroCiclo($item["nombre_cic"]) . '.' . $item["cod_car"] . '.' . $seccion["cod"] . ' ' . $this->trozarPalabras(utf8_encode($item["nombre_mat"])) . ' ' . $item["paralelo"];

            $aux[] = array("link_name" => $nombre, "periodo" => $item["ide_lec"], "materia" => $item["ide_mat"], "seccion" => $item["seccion"], "paralelo" => $item["paralelo"]);
            //echo $nombre;
            //echo '</br>';
        }
        return $aux;
    }

    function trozarPalabras($palabra) {

        $data = explode(" ", $palabra);
        $aux = '';
        foreach ($data as $item) {
            if (strlen($item) >= 3) {
                $a = substr($item, 0, 3);
                $aux.=$a . '.';
            } else if (strlen($item) <= 2) {
                //$a = substr($item, 0, 3);                
                if ($item != 'DE' && $item != 'LA' && $item != 'LO')
                    $aux.=$item . '.';
            }
        }
        return $aux;
    }

    function numeroCiclo($palabra) {
        if ($palabra == 'PRIMER SEMESTRE')
            return '1ro';
        if ($palabra == 'SEGUNDO SEMESTRE')
            return '2do';
        if ($palabra == 'TERCER SEMESTRE')
            return '3ro';
        if ($palabra == 'CUARTO SEMESTRE')
            return '4to';
        if ($palabra == 'QUINTO SEMESTRE')
            return '5to';
        if ($palabra == 'SEXTO SEMESTRE')
            return '6to';
    }

    function secciones($num) {
        if ($num == 1)
            return array('cod' => "DIU", "nombre" => "DIURNO");
        if ($num == 2)
            return array('cod' => "NOC", "nombre" => "NOCTURNO");
        if ($num == 3)
            return array('cod' => "FIN", "nombre" => 'FINES DE SEMANA');
    }

    //de jose
    //para  cuotas pagadas
    /**
     * Saca las cuotas pagadas
     * @param type $lista lista de coutas de cancela_planes
     * @return type la lista de cuotas pagadas
     */
    public function sacarListaPagosCuotas($lista) {
        $listaaux = array();
        $totalPagado = 0;
        //print_r($lista);
        foreach ($lista as $item) {
            for ($i = 1; $i <= 7; $i++) {
                $pos = "canc_cuota" . $i;
                if ($item[$pos] == true) {
                    $aux = array();
                    $aux["ide_canc"] = $item["ide_canc"];
                    $aux["fecha_pago"] = $item["fecha_pago"];
                    $aux["cuota"] = $item[$pos];
                    $aux["nro_cuota"] = count($listaaux) + 1; //$i;
                    $aux["valor"] = $item["valor_cuota" . $i];
                    $aux["observacion"] = $item["obser_cuota" . $i];
                    //$x = ($i <= 5) ? "couta" . $i . "_plan" : "cuota" . $i . "_plan"; //modificado patricio
                    $aux["valor_cuota" . $i] = $item["valor_cuota" . $i];
                    $listaaux[] = $aux;
                    $totalPagado = $totalPagado + $item["valor_cuota" . $i];
                }
            }
        }
        $resultado = array("lista" => $listaaux, "total" => $totalPagado);
        //print_r($resultado);
        return $resultado;
    }
    
    //para  cuotas pagadas
    

    /**
     * Saca las cuotas pagadas
     * @param type $lista lista de coutas de cancela_planes
     * @return type la lista de cuotas pagadas
     */
    public function sacarListaPagosCuotasXCouta($lista, $couta) {
        $listaaux = array();
        $totalPagado = 0;
        foreach ($lista as $item) {
            for ($i = 1; $i <= $couta; $i++) {
                $pos = "canc_cuota" . $i;
                if ($item[$pos] == true) {
                    $aux = array();
                    $aux["ide_canc"] = $item["ide_canc"];
                    $aux["fecha_pago"] = $item["fecha_pago"];
                    $aux["cuota"] = $item[$pos];
                    $aux["nro_cuota"] = count($listaaux) + 1; //$i;
                    $aux["valor"] = $item["valor_cuota" . $i];
                    $aux["observacion"] = $item["obser_cuota" . $i];
                    $x = ($i <= 5) ? "couta" . $i . "_plan" : "cuota" . $i . "_plan";
                    $aux["valor_cuota_planes"] = $item[$x];
                    //$aux["pago_todo"]=($aux["valor"]==$aux["valor_cuota".$i])?TRUE:FALSE;
                    $listaaux[] = $aux;
                    $totalPagado = $totalPagado + $item["valor_cuota" . $i];
                }
            }
        }
        $resultado = array("lista" => $listaaux, "total" => $totalPagado);
        return $resultado;
    }

    

    public function sacarValorCuotaDebe($lista, $couta) {
        // $listaA = array();
        $total=0;
        $actual=0;
      //  foreach ($lista as $item) {
            for ($i = 1; $i <= $couta; $i++) {
                //$aux = array();
                $x = ($i <= 5) ? "couta" . $i . "_plan" : "cuota" . $i . "_plan";
                $total =$total+ $lista[0][$x];
                //$listaA[] = $aux;
            }
        //}
        //return $listaA;
        $x = ($couta <= 5) ? "couta" . $couta . "_plan" : "cuota" . $couta . "_plan";
        $actual = $lista[0][$x];
        return array("total"=>$total,"actual"=>$actual);
    }

    /**
     * Para sacar la forma de pagos
     * @param type $num El tipo de cuota
     * @return string El nombre del tipo de pago
     */
    function forma_pago($num) {
        //(matriculas.forma_pago=3 OR matriculas.forma_pago=4 OR matriculas.forma_pago=5 OR matriculas.forma_pago=6 OR matriculas.forma_pago=7 OR matriculas.forma_pago=11)
        if ($num == 1 || $num == 2 || $num == 8 || $num == 9 || $num == 10)
            return "Contado";
        if ($num == 3)
            return "Beca";
        if ($num == 4 || $num == 5 || $num == 5 || $num == 6 || $num == 11 || $num == 7)
            return "Financiado";
    }
    /**
     * Saca las cuotas pagadas
     * @param type $lista lista de coutas rubros
     * @return type la lista de cuotas pagadas
     */
    public function sacarListaPagosCuotasRubros($lista) {
        $listaaux = array();
        $totalPagado = 0;
        $debe=0;
        //print_r($lista);
        $contDebe=0;
        foreach ($lista as $item) {
            $aux = array();
            $aux["fecha_pago"] = $item["fecha"];
            $aux["cuota"] = $item["nro_cuota"];
            $aux["valor"] = $item["valor"];
            $aux["estado"] = $item["estado"];
            if($item["estado"]==false){
                $totalPagado += $item["valor"];
            }else{
                $debe += $item["valor"];
                $contDebe++;
            }
            $listaaux[] = $aux;
//            
        }
        $listado=array("debe"=>$debe,"pagado"=>$totalPagado,"lista"=>$listaaux,"coutasDebe"=>$contDebe);
        //$resultado = array("lista" => $listaaux, "total" => $totalPagado);
        //print_r($resultado);
        return $listado;
    }
    public function listadoCuotasDebenRubros($lista) {
        $this->ci->load->model('Rubro_cuotas_modelo');
        $this->ci->load->model('estudiante_model');
        //$listaDebe = array();
        //$listaPagados = array();
        $listaTodos = array();
        foreach ($lista as $item) {
            
            $lista_plan_s_p = $this->ci->Rubro_cuotas_modelo->listarAsigna($item["ide_asigna"]);
            $listapago_s = $this->sacarListaPagosCuotasRubros($lista_plan_s_p);
            $item["debe"] = $listapago_s["debe"];
            $item["pagado"] = $listapago_s["pagado"];
            $cont=0;
            foreach ($listapago_s["lista"] as $data){
                $item["cuota_nro".$data["cuota"]] = $data["cuota"];
                $item["valor_nro".$data["cuota"]] = $data["valor"];
                $item["estado_nro".$data["cuota"]] = $data["estado"];
                $cont++;
            }
            for($i=$cont+1;$i<=4;$i++){
                $item["cuota_nro".$i] = $i;
                $item["valor_nro".$i] = 0;
                $item["estado_nro".$i] = false;
            }
            //$item["lista"] = $listapago_s["lista"];
            $item["pago_inicial"] = $item["pago_inicial"];
            $item["descuento"] = $item["descuento_rubro"];
            $item["nro_cuota"] = $item["nro_cuota"];
            $item["coutasDebe"] = $listapago_s["coutasDebe"];
            if($item["nro_cuota"]==1){
                if(($item["pago_inicial"]==$item["debe"])||($item["pago_inicial"]==$item["pagado"])){
                    $item["total"] = $item["debe"]+$item["pagado"]+$item["descuento_rubro"];
                }else{
                    $item["total"] = $item["debe"]+$item["pagado"]+$item["pago_inicial"]+$item["descuento_rubro"];
                }
                
            }else{
                $item["total"] = $item["debe"]+$item["pagado"]+$item["pago_inicial"]+$item["descuento_rubro"];
            }
            
            
            $listaTodos[] = $item;
        }
        //$resultado = array("todaLista" => $listaTodos);
        return $listaTodos;
    }
    
    public function listadoCuotasDeben($lista, $tipo) {
        $this->ci->load->model('Coutas_Model');
        $this->ci->load->model('estudiante_model');
        $listaDebe = array();
        $listaPagados = array();
        $listaTodos = array();
        foreach ($lista as $item) {
            if ($tipo == 'semestre') {
                $lista_plan_s_p = $this->ci->Coutas_Model->listarCoutas($item["matriculas_id_matr"], "cancela_plan_semestre", "planes_pago_semestre", "planes_semestre_ide_plan");
                $listapago_s = $this->sacarListaPagosCuotas($lista_plan_s_p);
                $item["verPago"] = (count($listapago_s["lista"]) == $item["nro_cuotas_plan"]) ? true : false;
                $item["lista_s"] = $listapago_s;
            }
            if ($tipo == 'arrastre') {
                $lista_plan_a_p = $this->ci->Coutas_Model->listarCoutas($item["matriculas_id_matr"], "cancela_plan_arrastre", "planes_pago_arrastre", "planes_arrastre_ide_plan");
                $listapago_a = $this->sacarListaPagosCuotas($lista_plan_a_p);
                $item["lista_a"] = $listapago_a;
                $item["verPago"] = (count($listapago_a["lista"]) == $item["nro_cuotas_plan"]) ? true : false;
            }
            if ($item["verPago"] == true) {
                $listaPagados[] = $item;
            } else {
                $listaDebe[] = $item;
            }
            $listaTodos[] = $item;
        }
        $resultado = array("deben" => $listaDebe, "pagados" => $listaPagados, "todaLista" => $listaTodos);
        return $resultado;
    }

    public function eliminar_modificar($id_cancela, $tipo,$id_matricula) {
        $this->ci->load->model('Coutas_Model');
        $data = array();
        if ($tipo == "s") {
            $lista_plan_s_p = $this->ci->Coutas_Model->obtenerCoutasCanceladas($id_cancela, "cancela_plan_semestre", "planes_pago_semestre", "planes_semestre_ide_plan");
            $listapago_s = $this->sacarListaPagosCuotas($lista_plan_s_p);
            if (count($listapago_s["lista"]) > 1) {
                $aux = $listapago_s["lista"];
                $pos = count($aux) - 1;
                $lista = $aux[$pos];
                $nro_couta = $lista["nro_cuota"];
                $data = array("canc_cuota" . $nro_couta => 0, "valor_cuota" . $nro_couta => 0);
                $this->ci->Coutas_Model->actualizarCuota($data, $id_cancela, "cancela_plan_semestre");
            } else {
                $this->ci->load->model('Planesp_Model');
                $this->ci->Coutas_Model->eliminarPago($id_cancela, "cancela_plan_semestre");
                $planes=$this->ci->Planesp_Model->getPlan($id_matricula,'planes_pago_semestre');
                $nro_coutas_canc=($planes[0]['nro_coutas_canc']>0?($planes[0]['nro_coutas_canc']-1):0);
                //echo(($planes[0]['ide_plan']));
                if($nro_coutas_canc>0)
                    $this->ci->Planesp_Model->actualizarCuotaCancelada($nro_coutas_canc, $planes[0]['ide_plan'], 'planes_pago_semestre');
                
                
                
                
                
                
            }
        } else if ($tipo == "a") {
            $lista_plan_a_p = $this->ci->Coutas_Model->obtenerCoutasCanceladas($id_cancela, "cancela_plan_arrastre", "planes_pago_arrastre", "planes_arrastre_ide_plan");
            $listapago_a = $this->sacarListaPagosCuotas($lista_plan_a_p);
            if (count($listapago_a["lista"]) > 1) {
                $aux = $listapago_a["lista"];
                $pos = count($aux) - 1;
                $lista = $aux[$pos];
                $nro_couta = $lista["nro_cuota"];
                $data = array("canc_cuota" . $nro_couta => 0, "valor_cuota" . $nro_couta => 0);
                $this->ci->Coutas_Model->actualizarCuota($data, $id_cancela, "cancela_plan_arrastre");
            } else {
                $this->ci->load->model('Planesp_Model');
                $this->ci->Coutas_Model->eliminarPago($id_cancela, "cancela_plan_arrastre");
                $planes=$this->ci->Planesp_Model->getPlan($id_matricula,'planes_pago_arrastre');
                $nro_coutas_canc=($planes[0]['nro_coutas_canc']>0?($planes[0]['nro_coutas_canc']-1):0);
                //echo(($planes[0]['ide_plan']));
                if($nro_coutas_canc>0)
                    $this->ci->Planesp_Model->actualizarCuotaCancelada($nro_coutas_canc, $planes[0]['ide_plan'], 'planes_pago_arrastre');
                
            }
        }
    }

    public function refinanciar($id_matricula, $tipo, $nro) {
        $data = array();
        $this->ci->load->model('Coutas_Model');
        $this->ci->load->model('planesp_model');

        if ($tipo == 'semestre') {
            $lista_plan_s_p = $this->ci->Coutas_Model->listarCoutas($id_matricula, "cancela_plan_semestre", "planes_pago_semestre", "planes_semestre_ide_plan");
            $listapago_s = $this->sacarListaPagosCuotas($lista_plan_s_p);
            $id_ref = "ide_plan";
            $planes = $this->ci->planesp_model->getPlanPagos("planes_pago_semestre", $id_matricula);
            /*  */
        } else if ($tipo == 'arrastre') {
            $lista_plan_s_p = $this->ci->Coutas_Model->listarCoutas($id_matricula, "cancela_plan_arrastre", "planes_pago_arrastre", "planes_arrastre_ide_plan");
            $listapago_s = $this->sacarListaPagosCuotas($lista_plan_s_p);
            $id_ref = "ide_plan";
            $planes = $this->ci->planesp_model->getPlanPagos("planes_pago_arrastre", $id_matricula);
        }
        $lista = $listapago_s["lista"];
        $pagado = $listapago_s["total"];
        $cont = 1;
        $financiado = $planes[0]["valor_financiar"];
        $afinanciar = $financiado - $pagado;
        $valorCuotaRefinanciado = round(($afinanciar / $nro), 2);
        $catn_cuotas_fin = $nro + count($lista);
        $continuarNumeroCuota = count($lista) + 1;
        $auxCuotaRefin = 0;
        foreach ($lista as $item) {
            if ($cont <= 5) {
                $nombreCuota = "couta" . $cont . "_plan ";
            } else {
                $nombreCuota = "cuota" . $cont . "_plan ";
            }
            $cont++;
            $dataAux = array("id" => $planes[0][$id_ref], "nombre" => $nombreCuota, "valor" => $item["valor"], "nro_cuotas_plan" => $catn_cuotas_fin, "estado" => "pagadas");
            $data[] = $dataAux;
        }

        for ($i = 0; $i < $nro; $i++) {
            if ($continuarNumeroCuota <= 5) {
                $nombreCuota = "couta" . $continuarNumeroCuota . "_plan ";
            } else {
                $nombreCuota = "cuota" . $continuarNumeroCuota . "_plan ";
            }
            if ($i == ($nro - 1)) {
                $valorCuotaRefinanciado = ($afinanciar - $auxCuotaRefin);
            } else {
                $auxCuotaRefin+=$valorCuotaRefinanciado;
            }
            $dataAux = array("id" => $planes[0][$id_ref], "nombre" => $nombreCuota, "valor" => $valorCuotaRefinanciado, "nro_cuotas_plan" => $catn_cuotas_fin, "estado" => "sin pagar");
            $data[] = $dataAux;
            $continuarNumeroCuota++;
        }
        return $data;
    }
    public function ver_couta($nro_c,$cuotas,&$valores){
        
        $out='';
            switch ($nro_c){
                case 0:
                    $out.='<td>' .number_format($cuotas["c1"], 2, '.', '') . '</td>';
                    $out.='<td>' .number_format($cuotas["c2"], 2, '.', '') . '</td>';
                    $out.='<td>' .number_format($cuotas["c3"], 2, '.', '') . '</td>';
                    $out.='<td>' .number_format($cuotas["c4"], 2, '.', '') . '</td>';
                    $out.='<td>' .number_format($cuotas["c5"], 2, '.', '') . '</td>';
                    $valores["c1"]+=($cuotas["c1"]);
                    $valores["c2"]+=($cuotas["c2"]);
                    $valores["c3"]+=($cuotas["c3"]);
                    $valores["c4"]+=($cuotas["c4"]);
                    $valores["c5"]+=($cuotas["c5"]);
                    
                break;
                case 1:
                    $out.='<td>0</td>';
                    $out.='<td>' .number_format($cuotas["c2"], 2, '.', '') . '</td>';
                    $out.='<td>' .number_format($cuotas["c3"], 2, '.', '') . '</td>';
                    $out.='<td>' .number_format($cuotas["c4"], 2, '.', '') . '</td>';
                    $out.='<td>' .number_format($cuotas["c5"], 2, '.', '') . '</td>';
                    $valores["c2"]+=($cuotas["c2"]);
                    $valores["c3"]+=($cuotas["c3"]);
                    $valores["c4"]+=($cuotas["c4"]);
                    $valores["c5"]+=($cuotas["c5"]);
                    
                break;
                case 2:
                    $out.='<td>0</td>';
                    $out.='<td>0</td>';
                    $out.='<td>' .number_format($cuotas["c3"], 2, '.', '') . '</td>';
                    $out.='<td>' .number_format($cuotas["c4"], 2, '.', '') . '</td>';
                    $out.='<td>' .number_format($cuotas["c5"], 2, '.', '') . '</td>';
                    $valores["c3"]+=($cuotas["c3"]);
                    $valores["c4"]+=($cuotas["c4"]);
                    $valores["c5"]+=($cuotas["c5"]);

                break;
                case 3:
                    $out.='<td>0</td>';
                    $out.='<td>0</td>';
                    $out.='<td>0</td>';
                    $out.='<td>' .number_format($cuotas["c4"], 2, '.', '') . '</td>';
                    $out.='<td>' .number_format($cuotas["c5"], 2, '.', '') . '</td>';
                    $valores["c4"]+=($cuotas["c4"]);
                    $valores["c5"]+=($cuotas["c5"]);
                    
                break;
                case 4:
                    $out.='<td>0</td>';
                    $out.='<td>0</td>';
                    $out.='<td>0</td>';
                    $out.='<td>0</td>';
                    $out.='<td>' .number_format($cuotas["c5"], 2, '.', '') . '</td>';
                    $valores["c5"]+=($cuotas["c5"]);
                    
                break;
                case 5:
                    $out.='<td>0</td>';
                    $out.='<td>0</td>';
                    $out.='<td>0</td>';
                    $out.='<td>0</td>';
                    $out.='<td>0</td>';
                    
                break;
                
            }
         //print_r($valores);

        return $out;
    }
    function tipoDocumento($num) {
        $doc="";
        if($num==1){
            $doc="EFECTIVO";
        }
        if($num==2){
            $doc="CHEQUE";
        }
        if($num==3){
            $doc="DEPOSITO";
        }
        if($num==4){
            $doc="TARJETA DE CREDITO";
        }
        if($num==7){
            $doc="TRANSFERENCIA";
        }
        return $doc;
    }
    public function listarRubrosMat($ide_matr, $ide_rubro) {
        $this->ci->load->model('Asignar_rubro_modelo');
        $this->ci->load->model('rubro_cuotas_modelo');
        $lista = $this->ci->Asignar_rubro_modelo->getListaAsignaRubroRubro($ide_matr,1,$ide_rubro);
        $data=array();
        $contAux = 0;
        foreach ($lista as $value) {
            //echo $value["ide_asigna"].' '.$value["nombre_rubro"].'  '.$value["nro_cuota"].'</br>';
            $data[$contAux]=array("ide_asigna"=>$value["ide_asigna"],"nombre_rubro"=>$value["nombre_rubro"],"nro_cuota"=>$value["nro_cuota"]);
            $listaCuotas = $this->ci->rubro_cuotas_modelo->listarAsigna($value["ide_asigna"]);
            $cont = 1;            
            foreach ($listaCuotas as $item) {
                $data[$contAux]["cuota".$cont]=$item["valor"];
                $data[$contAux]["estado".$cont]=$item["estado"];
                $cont++;
            }
            //if($cont<$value["nro_cuota"]){
            if($cont<=4){
                $contatx = $cont;
                for($i=$contatx;$i<=4;$i++){
                //for($i=$contatx;$i<=$value["nro_cuota"];$i++){
                    $data[$contAux]["cuota".$cont]=0;
                    $data[$contAux]["estado".$cont]=0;
                    $cont++;
                }
            }
            $contAux++;
        }
        //echo count($data);
//        foreach ($data as $value) {
//            echo $value["nombre_rubro"];    
//            
//        }
        return $data;
    }
}

?>
